
#pragma once


#include "EventSystem.h"
#include "Tangible.h"

//! Esta clase contiene los datos de un EvtDestroyObject
//!
struct EvtDataDestruirObject : public IEventData
{
	unsigned long mObj;
	explicit EvtDataDestruirObject( unsigned long obj )
		: mObj(obj)
	{
	}
};


//! Esta clase representa a un evento de destruir Object.
//!
class EvtDestroyObject : public Event
{
public:

	//! Construye el evento.
	//!
	//! @param obj El ID del Object.
	explicit EvtDestroyObject( unsigned long obj )
		: Event("EvtDestroyObject", 
		IEventData::Ptr(new EvtDataDestruirObject(obj) )
		)
	{
	}
};